The present invention relates to a coded image recording device and method for recording optically readable coded images on the surface of a recording medium such as paper.
As a conventional coded image recording device which records an optically readable coded image on a recording medium (paper in particular), there is a technique of recording a coded image comprising multiple blocks having a physical format on paper, which is disclosed in EP No. 0,670,555A1(U.S. Ser. No. 08/407,018) now U.S. Pat. No. 5,896,703 assigned to the same assignee as this invention. This recording device records multimedia information, such as sound, images, text, etc., as a coded image and can be adapted to varying amounts of data in input multimedia information by increasing the number of blocks, each of which constitutes a physical minimum storage unit, according to the data amount.
Each of the blocks has an ID number referred to as a block address. A coded image is recorded on paper by concatenation of a plurality of blocks. An increase in the number of blocks that can be concatenated leads to an increase in the amount of recordable information. However, the use of an optical reader of a manual scanning type will increase the probability of the occurrence of a read error due to meanderings of scanning attendant an increase in scanning range. Such a read error will produce frequently dropouts of blocks, i.e., so-called burst errors, which makes difficult a reliable read operation by manual scanning.
In view of the prior art problem, EP No. 0,713,914A1(U.S. Ser. No. 08/586,792) now U.S. Pat. No. 5,898,709 by way of example discloses a technique related to a logical data format that allows even a manual-scanning reader to read data recorded in blocks with more certainty and a coded image recording device that produces and records a coded image based on the logical data format.
Hereinafter, the arrangement of such a coded image recording device will be described with reference to FIG. 15.
In this figure, the data input unit and the code printing unit are omitted because they are not directly related to the present invention to be described later.
In FIG. 15, digitized multimedia information is entered into a data compression unit 21, which receives from a controller 29 identification information that represents the type of sound, images, or text. By this identification information, one of compressors in the data compression unit is selected, thereby subjecting the input multimedia information to compression corresponding to the identification information and producing desired compressed data. In the structure of the compressed data, a header is added which defines the data type, the compression scheme, and the compressed data amount. The amount of compressed data with such a header is presented to the controller 29.
A dummy data generation unit 23 generates dummy data which is added so that supermacroblock data 191 shown in FIG. 16 is divisible by one macroblock data in a macroblock data group 193. Here, a supermacroblock, a macroblock and block data used in the following description correspond to data, a first block, and a second block (or simply a block), respectively. In addition, macroblock user data and block user data correspond to first block data and second block data (or unit block data), respectively. All these expressions are used in the following description.
The compressed data and the dummy data are entered into an error correcting code generator 22, which receives correction capability information from the controller 29. The error correcting code generator 22 adds given error correcting and checking parity to the compressed data having a data amount determined according to the error capability information and generates correcting codes. The correcting code length and the parity length corresponding to the correction capability are sent to an interleave unit 24 and a macroblock header generator 25. The correcting codes thus generated are entered into the interleave unit 24 and stored in sequence into a buffer memory (not shown) in the interleave unit on the basis of the input correcting code length. The logical data format of a group of the correcting codes thus stored has a two-dimensional structure as shown in supermacroblock data 191 of FIG. 16. The number of the correcting codes corresponds to the interleave length.
EP No. 0,713,914A1(U.S. Ser. No. 08/586,792) describes that supermacroblock data is an integral multiple of macroblock data, but does not describe any specific structure of the supermacroblock data. A specific structure of the supermacroblock data is described in EP No. 0,703,580A2. In the technique disclosed in this publication, dummy data is appended to compressed data so that supermacroblock data is an integral multiple of macroblock data and correcting parity is affixed to the dummy data with the dummy data taken as part of the compressed data.
The supermacroblock data 191 has dummy data added to the end of compressed data to form a given size of supermacroblock data. Here, the dummy data may be a predetermined fixed value or a random number generated in accordance with a predetermined rule. The supermacroblock data 191 is written into the buffer in the direction of correcting code length and read from the buffer into a macroblock data generator 26 in the direction of the interleave length. Thereby, interleave processing is completed, so that logically one-dimensional supermacroblock data 192 is produced. The interleave length is presented to the macroblock header generator 25.
The macroblock header generator 25 produces a header based on the input correcting code length, parity length, and interleave length, and the ID number of the supermacroblock and the ID number of a macroblock output from the controller 29, i.e., information representing how the macroblocks are concatenated to form a supermacroblock. Error correcting parity is appended to produce a final macroblock header. The macroblock header is output to the macroblock data generator 26.
In the macroblock data generator 26, the one-dimensional supermacroblock data 192 after interleave is divided into pieces of macroblock user data each corresponding to macroblock data having a given data amount. Each piece of macroblock user data is assigned a macroblock header to produce a group of macroblock data 193. The macroblock data group 193 is entered into a block data generator 27 where each macroblock data is divided into multiple pieces of block user data.
Each piece of block user data comprises data obtained by dividing each of the macroblock header and macroblock user data by the number of pieces of block data in each macroblock data.
A block header is appended to each piece of block user data, thus producing a block data group 194. The block header contains block-related header information such as a block address.
The block data group 194 is entered into a coded image generator 28, which converts each block data into a block comprised of markers 112, pattern codes 113, block headers 114, and block user data 115 as shown in FIG. 3, and produces a code image in which multiple blocks are concatenated. The block user data 115 is recording modulated to discriminate between data 115 and markers 112 and recorded in black and white dots each for a bit.
The above-described conventional technique appends control information that makes each of the interleave length and the error correcting capability variable according to the amount of data in the input multimedia information, i.e., a macroblock header, for each macroblock by way of example and thereby checks an increase in the percentage of multimedia information of the control information, i.e., a reduction in recording density, to a minimum. Thus, the reader can detect the control information with more certainty.
Hereinafter, the reason will be described taking others than the above-described technique by way of example will be described.
First, in the conventional technique, when the control information is recorded in a given block, for example, a block whose block address is one, the importance of the block recorded with the control information increases very greatly as compared with the other blocks. With the manual scanning-based reader, the reading accuracy for a specific block cannot be increased and there is the possibility of misreading any of the blocks.
Thus, it cannot be said that the probability of the block recorded with the control information being misread is low enough. In other words, the frequency that a supermacroblock cannot be reconstructed increases.
Second, when each block contains the control information, the evenness of the importance of each block is achieved and the control information can be extracted with certainty even if some block is misread. However, this approach results in an increase in the percentage of multimedia information to be recorded relative to the control information. Thus, the recording density per unit code length is reduced.
In the conventional technique, the supermacroblock data 191 corresponds in size to an integral multiple of each block. Thus, data forming one correcting code in the simple two-dimensional supermacroblock data 191 may be recorded on the same location in each block 111. This occurs in the case where the amount of data stored in each block in the supermacroblock data 191 corresponds to either a submultiple or a multiple of the interleave length.
If, under such a condition, a coded image is formed by multiple blocks into a rectangular shape, the error correcting code data are arranged in lines in the horizontal and vertical directions. If linear scratches should be produced in the vertical and horizontal directions, the probability that errors are produced in numbers beyond correcting capability in each correcting code would increase. That is, the reader becomes extremely affected by linear scratches in the horizontal and vertical directions.
In particular, when printing a coded image with a printing device in which the paper feeding accuracy is poor or the accuracy of scanning by a printing head is poor, unevenness of printing occurs in a direction perpendicular to the printing head scanning direction or the paper feeding direction. The unevenness of printing appears in the form of linear scratches 133 and 134 in the horizontal and vertical directions on a code 132 recorded on paper 131 as shown in FIG. 6. Errors will be produced in data corresponding in location to the scratches 133 and 134. With such a printing device, there arises a problem that a code cannot be read fully.
By making up a macroblock of as many blocks as possible, the amount of data in control information allocated to each block can be reduced to increase the recording density per unit code. On the other hand, when the amount of data in input multimedia information (after correcting parity has been appended) is not divisible by the amount of data that can be stored in each macroblock, much useless dummy data is inserted into supermacroblock data prior to interleaving. This is due to the premise that supermacroblock data corresponds in size to an integral multiple of macroblock data. The useless dummy data are scattered over a coded image after interleaving and are all recorded. That is, the dummy data will take up unnecessarily a recording medium, e.g., paper surface. This imposes a constraint on the restricted layout of paper.